Documentation for Users  0.11.5
Perception Toolbox for Virtual Reality (PTVR) Manual
Changelog

Semantic Versioning

PTVR strives to use Semantic Versioning for its releases: (Major).(Minor).(Patch).

Given a version number, MAJOR.MINOR.PATCH increments the:

  1. MAJOR version when you make incompatible API changes
  1. MINOR version when you add functionality in a backwards compatible manner
  1. PATCH version when you make backwards compatible bug fixes

PTVR 0.11.5 (23 October 2023)

Unity Version : 2020.3.34f1

Improvements

PTVR 0.11.4 (20 September 2023)

Unity Version : 2020.3.34f1

Improvements

  • Improved demos
  • Added Results folder to PTVR_Operators

PTVR 0.11.3 (14 September 2023)

Unity Version : 2020.3.34f1

Improvements

  • Renamed rotate_about_local_... into rotate_about_object...

Features

  • Added callback_timestamp_ms to results file
  • Added application_version to results file

PTVR 0.11.2 (25 July 2023)

Unity Version : 2020.3.34f1

Improvements

  • Deleted outdated demos
  • Improved documentation

PTVR 0.11.1 (24 July 2023)

Unity Version : 2020.3.34f1

Features

  • Add scene_start_timestamp to results file
  • Add scene_end_timestamp to results file

PTVR 0.11.0 (04 July 2023)

Unity Version : 2020.3.34f1

Features

  • Add button for open json

Improvements

  • Change Input to Events and Events to Callbacks

PTVR 0.10.2 and PTVR 0.10.3 (16 December 2022)

Unity Version : 2020.3.34f1

Features

  • New Callbacks CalibrationEyesTracking

Improvements

  • Documentation upgrade Doxygen Awesome
  • Correct Reset
  • Correct Eyetracking Demos

Known Issues

  • Documentation table broken

PTVR 0.10.4 (22 Mars 2023)

Unity Version : 2020.3.34f1

Features

  • Possibility to set 3DWorld in Monocular
  • New Callback ChangeObjectScale
  • New Callback ChangeHapticSettings
  • HandController can manage the parenting

Improvements

  • PointedAt is now able to manage HandController and EyesTracking
  • PointingCursor is now able to manage hands_contingent
  • Rename Relative to Local

PTVR 0.10.2 and PTVR 0.10.3 (16 December 2022)

Unity Version : 2020.3.34f1

Features

  • New Callbacks CalibrationEyesTracking

Improvements

  • Documentation upgrade Doxygen Awesome
  • Correct Reset
  • Correct Eyetracking Demos

Known Issues

  • Documentation table broken

PTVR 0.10.1 (12 December 2022)

Unity Version : 2020.3.34f1

Hotfix

Documentation

PTVR 0.10.0 (09 December 2022)

Unity Version : 2020.3.34f1

Features

Creation of new ids for some objects (experimental)

  • my_world.idHandControllerLeft -> -1
  • my_world.idHandControllerRight ->-2
  • my_world.idHeadset -> -3
  • my_world.idOriginCurrentCS -> -4
  • my_world.idGlobalCS -> -5

Get objects characteristics (positions , orientation)

  • my_object.get_current_CS_cartesian_coordinates() not used anymore
  • my_object.get_position_in_global_CS() (not working if rotate_to_look_at or rotate_to_look_at_in_opposite_direction is used)
  • my_object.get_axis_in_global_CS()
  • my_object.get_axis_tangent_screen()
  • my_object.get_position_on_screen_in_cartesian_coordinates_from_perimetric_coordinates(eccentricity_deg, half_meridian_deg, distance_ahead_from_screen)
  • my_object.reset_orientation()
  • my_object.reset_position()
  • my_object.reset()

New rotation function

  • my_object.rotate_to_look_at(id_object_to_lookAt)
  • my_object.rotate_to_look_at_in_opposite_direction(id_object_to_lookAt_in_opposite_direction)

Improvements

New functions in PTVR.Tools.py

  • tools.norm(u)
  • tools.scalar_product(u,v)
  • tools.normalize(u)
  • tools.vector_product(u,v)
  • tools.intersection_between_line_and_tangent_screen(origin, line_vector_eccentricity_deg, line_vector_half_meridian_deg,tangent_screen_origin)
  • tools.capoc_ray(origin, line_vector_eccentricity_deg, line_vector_half_meridian_deg)
  • tools.rotate_about_vector(u_vec,v_vec,theta_deg)
  • tools.translate_along_axis(u,axis_cs_x,axis_cs_y,axis_cs_z,epsilon)
  • tools.deg_to_rad(deg)
  • tools.rad_to_deg(rad)
  • tools.points_to_vec(point_a,point_b)
  • tools.distance_between_two_points(point_a,point_b)
  • tools.angle_between_two_vectors_deg(a_vec,b_vec)
  • tools.angle_between_two_vectors_rad(a_vec,b_vec)
  • tools.global_to_relative_cartesian_coordinates(point_in_global_cs,relative_cs_origin,relative_cs_axis_X,relative_cs_axis_Y,relative_cs_axis_Z)
  • tools.relative_to_global_cartesian_coordinates(point_in_relative_cs,relative_cs_origin,relative_cs_axis_X,relative_cs_axis_Y,relative_cs_axis_Z)
  • tools.segment_orientation_to_segment_projected_orientation_deg(orientation_deg, tangent_screen_X_axis,tangent_screen_Z_axis, capoc_eccentricity_deg, capoc_half_meridian_deg)
  • tools.segment_projected_orientation_to_segment_orientation_deg(projected_orientation_deg, tangent_screen_X_axis,tangent_screen_Z_axis, capoc_eccentricity_deg, capoc_half_meridian_deg)
  • tools.segment_orientation_from_local_cartesian_coordinates_deg(point_a,point_b)
  • tools.set_spherical_to_cartesian(eccentricity_deg, half_meridian_deg , radial_distance)
  • tools.set_spherical_to_cartesian_vec(eccentricity_deg, half_meridian_deg , radial_distance)

Update in PTVR.LogManager.py

  • log.SetWarning(information)
  • log.SetError(information)

Changes

Current_CS

CS translations

  • my_world.translate_coordinate_system_along_current(translation)
  • my_world.translate_coordinate_system_along_global(translation)

CS rotation

  • my_world.rotate_coordinate_system_about_current_x(rotation_deg)
  • my_world.rotate_coordinate_system_about_current_y(rotation_deg)
  • my_world.rotate_coordinate_system_about_current_z(rotation_deg)
  • my_world.rotate_coordinate_system_about_global_x(rotation_deg)
  • my_world.rotate_coordinate_system_about_global_y(rotation_deg)
  • my_world.rotate_coordinate_system_about_global_z(rotation_deg)

Reset

  • my_world.reset_coordinate_system()

Objects

Objects translation (new functions)

  • my_object.set_cartesian_coordinates(x=0.0,y=0.0,z=0.0, system="leftHand_Zforward")
  • my_object.set_local_cartesian_coordinates(x=0.0,y=0.0,z=0.0, system="leftHand_Zforward")
  • my_object.set_spherical_coordinates( coordinate_system, radialDistance, eccentricity, halfMeridian, elevation, azimuth)
  • my_object.set_local_spherical_coordinates( coordinate_system, radialDistance, eccentricity, halfMeridian, elevation , azimuth)
  • my_object.set_perimetric_coordinates( radialDistance, eccentricity, halfMeridian)
  • my_object.set_local_perimetric_coordinates(coordinate_system, radialDistance , eccentricity, halfMeridian , elevation = OPTIONAL_VALUE, azimuth = OPTIONAL_VALUE)
  • my_object.translate_along_current_vector(translation = np.array([0.0,0.0,0.0]))
  • my_object.translate_along_current_xyz(x,y,z)
  • my_object.translate_along_global_vector(translation = np.array([0.0,0.0,0.0]))
  • my_object.translate_along_global_xyz(x,y,z)
  • my_object.translate_along_local_vector(translation = np.array([0.0,0.0,0.0]))
  • my_object.translate_along_local_xyz(x,y,z)

Objects rotation

  • my_object.rotate_about_global_x(angle_deg)
  • my_object.rotate_about_global_y(angle_deg)
  • my_object.rotate_about_global_z(angle_deg)
  • my_object.rotate_about_current_x(angle_deg)
  • my_object.rotate_about_current_y(angle_deg)
  • my_object.rotate_about_current_z(angle_deg)
  • my_object.rotate_about_local_x(angle_deg)
  • my_object.rotate_about_local_y(angle_deg)
  • my_object.rotate_about_local_z(angle_deg)
  • my_object.rotate_to_look_at(id_object_to_lookAt)
  • my_object.rotate_to_look_at_in_opposite_direction(id_object_to_lookAt_in_opposite_direction)

Reset

  • my_object.reset_position()
  • my_object.reset_orientation()
  • my_object.reset()

Parenting

New Functions:

  • my_object..set_parent(parent,x_local, y_local, z_local)
  • my_object.set_spherical_coordinates_on_screen(my_tangentscreen, eccentricity_local_deg, half_meridian_local_deg, distance_ahead_from_screen ,coordinate_system="perimetric")
  • my_object.set_perimetric_coordinates_on_screen(my_tangentscreen, eccentricity_local_deg, half_meridian_local_deg, distance_ahead_from_screen)
  • my_object.set_cartesian_coordinates_on_screen(my_2D_screen, x_local, y_local, z_local)

Other

  • Use my_scene.place(my_object,my_world) instead of my_scene.place(my_object)
  • Correction of Linetool (now takes into account current_cs and parenting)
  • position_in_current_CS after init not taken into account anymore

PTVR 0.9.2 (4 July 2022)

Unity Version : 2020.3.34f1